/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.com.losalpes.marketplace.pical.entities.test;

/**
 *
 * @author leon
 */
import co.com.losalpes.marketplace.pical.bos.CalificacionBO;
import co.com.losalpes.marketplace.pical.entities.Calificacion;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import javax.annotation.PostConstruct;

public class IniciarCalificacionBO {

    //5
    private static String[] comentario = {"Pesimo", "Aceptable", "Normal", "Muy Bueno", "Recomendado 100%"};
    private static String[] tipoTransaccion = {"RFQ", "PO", "RFB", "S"};
    private static Random ranGen = new Random();
    private static List<CalificacionBO> calificaciones = new ArrayList<CalificacionBO>();

    /**
     * Inserta xx elementos en tabla cotizacion
     *
     * @param args
     */
    public static void main(String args[]) {
        init();
    }

    @PostConstruct
    private static void init() {
        Calificacion c;
        //crear calificaciones vacias
        for (int i = 0; i < 30; i++) {
            c = incializarCalificacion();
            calificaciones.add(c.toBO());
        }
        //crear calificaciones lleno comercio
        for (int i = 0; i < 10; i++) {
            c = incializarCalificacion();
            c = llenarComercio(c);
            calificaciones.add(c.toBO());
        }
        //crear calificaciones lleno fabricante
        for (int i = 0; i < 10; i++) {
            c = incializarCalificacion();
            c = llenarFabricante(c);
            calificaciones.add(c.toBO());
        }
        //crear calificaciones lleno producto
        for (int i = 0; i < 10; i++) {
            c = incializarCalificacion();
            c = llenarProducto(c);
            calificaciones.add(c.toBO());
        }
        //crear calificaciones lleno producto y fabricante
        for (int i = 0; i < 10; i++) {
            c = incializarCalificacion();
            c = llenarProducto(c);
            c = llenarFabricante(c);
            calificaciones.add(c.toBO());
        }
        //crear calificaciones lleno producto y fabricante
        for (int i = 0; i < 15; i++) {
            c = incializarCalificacion();
            c = llenarProducto(c);
            c = llenarFabricante(c);
            c = llenarComercio(c);
            c.setEstado(Calificacion.E_TERMINADA);
            calificaciones.add(c.toBO());
        }
    }

    private static Calificacion incializarCalificacion() {
        Calificacion c = new Calificacion();
        String numero = "CAL" + System.currentTimeMillis();
        c.setNumero(numero);
        c.setNit_comercio(ranGen.nextInt(20) + "");
        c.setNit_fabricante(ranGen.nextInt(20) + "");
        c.setUser_comercio(c.getNit_comercio());
        c.setUser_fabricante(c.getNit_fabricante());
        c.setNumeroSeguimientoPO("PO" + System.currentTimeMillis());
        c.setEstado(Calificacion.E_PENDIENTE);
        c.setTipo_transaccion(tipoTransaccion[ranGen.nextInt(3)]);
        return c;
    }

    private static Calificacion llenarComercio(Calificacion c) {
        int cal = ranGen.nextInt(4);
        c.setCal_comercio(cal);
        c.setCom_comercio(comentario[cal]);
        return c;
    }

    private static Calificacion llenarFabricante(Calificacion c) {
        int cal = ranGen.nextInt(4);
        c.setCal_fabricante(cal);
        c.setCom_fabricante(comentario[cal]);
        return c;
    }

    private static Calificacion llenarProducto(Calificacion c) {
        int cal = ranGen.nextInt(4);
        c.setCal_producto(cal);
        c.setCom_producto(comentario[cal]);
        return c;
    }

    public static List<CalificacionBO> getCalificaciones() {
        return calificaciones;
    }

    public static void setCalificaciones(List<CalificacionBO> calificaciones) {
        IniciarCalificacionBO.calificaciones = calificaciones;
    }
}
